import java.util.Date;


public class Cliente extends Thread {
	private final int id;
	private final Date hora;
	private int envejecimiento = 0;
	private Date tiempoInicio;
	
	private Tiempo tiempo;
	private boolean esEspecial;
	
	public Cliente(int id, Date hora, 
			Pedido pedido, Tiempo tiempo, boolean esEspecial)
	{
		super();
		this.id = id;
		this.esEspecial = esEspecial;
		this.hora = hora;
		
		this.tiempo = tiempo;
		this.esEspecial = esEspecial;
	}
	
	public void run()
	{
		while (tiempo.getHora().before(getHora()))
		{
			/*
			 * Esta parte depende del Tiempo.
			 */
			try {
				Thread.sleep(getHora().getTime() - 
						tiempo.getHora().getTime());
			} catch (InterruptedException e) {
			}
		}
		setTiempoInicio(tiempo.getHora());
		PlanificadorClientes.planificarCliente(this);
	}
	public long getId() {
		return id;
	}
	public boolean EsEspecial()
	{
		return esEspecial;
	}
	public Date getHora() {
		return hora;
	}

	public int getEnvejecimiento() {
		return envejecimiento;
	}

	public void setEnvejecimiento(int envejecimiento) {
		this.envejecimiento = envejecimiento;
	}

	public Date getTiempoInicio() {
		return tiempoInicio;
	}

	public void setTiempoInicio(Date tiempoInicio) {
		this.tiempoInicio = tiempoInicio;
	}	
}
